/*
 * Saphre - Suffix Arrays for Phrase Extraction
 * Copyright (C) 2013 
 * Dale Gerdemann - Tübingen, Germany 
 * Niko Schenk - Frankfurt am Main, Germany
 * All rights reserved.
 *
 * This program is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later
 * version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details.
 *
 * You should have received a copy of the GNU General Public License along with
 * this program. If not, see <http://www.gnu.org/licenses/>.
 *
 */
package util.sorting;

import java.util.List;

public interface EquivalenceRelation {


    /**
     * test equivalence
     *
     * @param p
     * @param q
     * @return true if p and q are in the same set
     */
    public boolean equivalent(int p, int q);

    /**
     * unite: put p and q into the same set
     *
     * @param p
     * @param q
     */
    public void unite(int p, int q);

    /**
     * Get the singletons.
     *
     * @return a list of singleton in the equivalence class.
     */
    List<Integer> singletons();

}
